#include<iostream>
#include<string>
using namespace std;
class Person
{
	private:
		string name;
		char gender;
		int age;
		string address;
	public:
		void set()
		{
			cout<<"setting person:name gender age address"<<endl;
			cin>>name>>gender>>age>>address;
		}
		virtual void show()
		{
			cout<<"----show_Person----"<<endl;
			cout<<"name:"<<name<<endl;
			cout<<"gender:"<<gender<<endl;
			cout<<"age:"<<age<<endl;
			cout<<"address:"<<address<<endl;
		}
};
class Teacher:public virtual Person
{
	private:
		string job;
		double salary;
	public:
		void set()
		{
			cout<<"setting Teacher:job salary"<<endl;
			cin>>job>>salary;
		}
		void show()
		{
			cout<<"----show_Teacher----"<<endl;
			cout<<"job:"<<job<<endl;
			cout<<"salary:"<<salary<<endl;
		}
};
class Leader:public virtual Person
{
	private:
		string duty;
	public:
		void set()
		{
			cout<<"setting Leader:duty"<<endl;
			cin>>duty;
		}
		void show()
		{
			cout<<"----show_Leader----"<<endl;
			cout<<"duty:"<<duty<<endl;
		}
};
class Teacher_leader:public Leader,public Teacher
{
	public:
		void set()
		{
			cout<<"setting Teacher_leader"<<endl;
			Person::set();
			Teacher::set();
			Leader::set();
		}
		void show()
		{
			cout<<"showing Teacher_leader"<<endl;
			Person::show();
			Teacher::show();
			Leader::show();
		}
};
int main()
{
	Person *a;
	Teacher_leader tla;
	tla.set();
	a=&tla;
	a->show();
	return 0;
}

